Amazon S3のレプリケーション機能を使用してみました。

Amazon S3のレプリケーション機能を使用してみました。

Clock Icon2021.09.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、イムチェジョンです。
今回のブログではAmazon S3のオブジェクトのレプリケーションを保存するバケット作成してみました。

アジェンダ

  1. オブジェクトのレプリケーションとは?
  2. レプリケーションバケットの作成
  3. まとめ

1. S3のレプリケーションとは?

  • レプリケーションを使用しますと、Amazon S3のバケット全体のオブジェクトを自動で非同期的にコピーする
  • オブジェクトの複製のために構成されたバケットは同じAWSアカウントまたは他のアカウントが所有可能
  • オブジェクトは単一の対象バケットまたは複数の対象バケットに複製できる
  • 基本的に、複製は活性化された新しいAmazon S3オブジェクトのコピーのみサポートする
  • 複製を使って既存のオブジェクトを他のバケットにコピーするためには、AWS Support Centerに問い合わせる必要がある

2. レプリケーションバケットの作成

S3バケットを作成

まず、オリジンとレプリケーションで使う二つのS3バケットを作成します。
[ オリジンバケット ]
バケット名:lim-origin-202108
AWS リージョン:ap-northeast-2 (ソウル)
バケットのバージョニング:有効にするをチェック

[ レプリケーションバケット ]
バケット名:lim-replica-202108
AWS リージョン:ap-northeast-1 (東京)
バケットのバージョニング:有効にするをチェック

次にオリジンバケットにファイルをアップロードします。

今はレプリケーションの設定をしてないので、レプリケーションバケットには何も保存されてないです。

レプリケーションの設定

今からレプリケーションの設定を行います。 レプリケーションバケットの[管理]部分に[レプリケーションルール]があります。

新しいレプリケーションルールを作成します。
レプリケーションルール名:ReplicaRule
ルールスコープを選択:このルールは、バケット内のすべてのオブジェクトに適用されますを選択

送信先はこのアカウントのバケットを選択するがクリックされている状態でレプリケーションバケット名を選択します。

IAMロールは新しいロールの作成を選択します。

保存すると、レプリケーションルールが作成されました。

テスト - アップロード

レプリケーションの設定をしたので、テストをしてみましょう。
まず、ご注意点はレプリケーションの設定をする前のファイルはレプリケーションバケットに保存されません。

なので、オリジンバケットで新しいファイルをアップロードします。

バージョンで確認をしてみると、二つのファイルがアップロードされました。
バージョンID:suWwUNBzbkc3O59HIsz6s4ncAUDHUXJz - cat.jpg
バージョンID:AzE4zGUIeI13YURNhfvZwdB1PS6Iz_Wh - dog.jpg

レプリケーションバケットで確認をしてみると、オリジンバケットでアップロードされたバージョンIDと同じ二つのファイルがアップロードされてます。

テスト - 削除

アップロードをしてみたので、今回は削除をしてみましょう。
オリジンバケットの二つのファイルを削除します。

削除マーカーのバージョンが確認できます。

レプリケーションバケットで確認をしてみると、削除マーカーはアップロードされてないです。

なら、完全に削除したらどうでしょうか。

レプリケーションバケットで確認をしてみると、変化がありません。

なんで削除はレプリケーションバケットに反映できてないんでしょうか。
その理由はレプリケーションバケットのデフォルト設定には削除を反映しないようにしているからです。
削除まで反映するためには、レプリケーションルールを変更する必要があります。

レプリケーションルール設定の下の[追加のレプリケーションオプション]部分に削除マーカーのレプリケーションをチェックします。

ここからは削除もレプリケーションバケットに反映できるようになります。

3. まとめ

今回はAmazon S3のオブジェクトのレプリケーションを保存するバケット作成してみました。S3の細かい設定を使用しながら、S3の理解も高くなっているような感じです!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.